\documentclass[a4paper,oneside,11pt]{scrartcl}
\usepackage[left=2cm,right=2cm,top=2.0cm,bottom=2.5cm,includeheadfoot]{geometry}
\usepackage[utf8]{inputenc}  % Replace "utf8" by "latin1" if your editor sucks.
\usepackage{fancyhdr}        % Better header and footer support.
\usepackage{titlesec}        % Alternative section titles.
\usepackage{amssymb}         % Math support.
\usepackage{amsmath}         % Math declarations.

% GraphViz support
\usepackage{graphicx}
\usepackage[x11names, rgb]{xcolor}
\usepackage{tikz}            % Drawing shapes.
\usepackage{caption}         % Captions for graphviz figures.
\usetikzlibrary{snakes,arrows,shapes}
\newcommand{\mygraph}[2]{%
  \vspace{1em}
  \includegraphics[width=15cm]{figures/#1.png}
  \captionof{figure}{#2}
  \vspace{1em}
}

% Variables.
\input{version.tex}
\newcommand{\productname}{Spiff Warehouse}
\newcommand{\product}{{\it \productname} }

% Make references clickable.
\usepackage[colorlinks,hyperindex]{hyperref}
\hypersetup{%
  pdftitle    = {\productname\ Version \productversion},
  pdfkeywords = {spiff warehouse object storage},
  pdfauthor   = {Samuel Abels},
  colorlinks  = true,
  %linkcolor   = blue,
}

% Initialize headers and footers.
\pagestyle{fancy}            % Use fancyhdr to render page headers/footers.
\fancyhf{}                   % Clear out old header/footer definition.

% Header
%\fancyhead[C]{\bfseries \productname}
\fancyhead[L]{\leftmark}
\fancyhead[R]{\MakeUppercase{\rightmark}}
\renewcommand{\headrulewidth}{0.5pt}

% Footer
\fancyfoot[C]{Page \thepage}
\renewcommand{\footrulewidth}{0.5pt}

% Enumerate using letters.
\renewcommand{\labelenumi}{\alph{enumi})}

% Set source code options.
\usepackage{listings}
\lstset{language=python}
\lstset{commentstyle=\textit}
\lstset{showstringspaces=false}
\lstset{aboveskip=.1in,belowskip=.1in,xleftmargin=2em,basewidth=5pt}

% Do not indent paragraphs.
\parindent=0em

% Preformatted, indented text.
\usepackage{verbatim}
\makeatletter
\newenvironment{indentverb}
  {\def\verbatim@processline{%
  \hspace*{2em}\the\verbatim@line\par}%
  \verbatim}
  {\endverbatim}
\makeatother

% Title
\title{\productname\ Release \productversion\\
User Documentation\\
\vspace{5 mm}
\large Versioned object storage for Python}

% Hint boxes.
\usepackage{color}
\definecolor{nb}{gray}{.90}
\newcommand{\hint}[1]{
  \begin{center}
  \colorbox{nb}{
    \begin{tabular}{ll}
      \Large ! &
      \begin{minipage}{.92\linewidth}{
        \vspace{2mm}
        \sf #1
        \vspace{2mm}
      }\end{minipage}
    \end{tabular}
  }
  \end{center}
}
